-
Notifications
You must be signed in to change notification settings - Fork 27
Store freq & override judge score in separate table #103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
77618a1 to
1ba811e
Compare
1ba811e to
ea35f14
Compare
ea35f14 to
ee230ed
Compare
c200260 to
2385898
Compare
|
I uploaded a commit 0fcba82 as the prototype of the step2: displaying lamps based on the modded scores The main idea of the commit is providing overloads for the query functions in This implementation doesn't add a new sqlite table or modify any existed table's definition. Completely based on the work from step1, which implements the correct full play history, and records the mods that was using. Another idea is extending the definition of |
|
Fixed the lamp folder display issue and fill the fallback strategy. This pr is now can be considered as completed. But not ready to be merged, demanding further discussion and fill the todos |
This pr has an uncommitted extension, based on #179, which allows user review their score in result scene/course result scene. I couldn't decide whether to include this feature in this pr or not. Need some advice :) |
09b70df to
2b09c1a
Compare
2b09c1a to
9ae36cd
Compare




Motivation
Store modded score in database, and provide mechanism to view them
Goal
Implementation Details
The first goal is pretty straightforward. Creating a similar table
eddataloginscoredatalog.db, but:scoredatalog.dbfile doesn't save each play recordrateandoverridejudgeAnd by querying this table we can easily render a local history in-game using imgui. Demo:

The second goal, however, it's much complicated than first step. The most straightforward idea would be to implement the same strategy from step1: expand the definition of
scoretable and modifies the query statements. However, it's very hard to expand thescoretable because its primary key is(sha256, lnmode)and it means for each chart, it stores the best score for eachlnmode. Therefore, we need to expand the primary key as(sha256, lnmode, freq, override judge rank)and maintains the best score based on current selected mods and adds more fields into primary key set if we added more mods in the future.Therefore, instead of expanding the definition of
scoretable, this pr chose to calculate the best score based on users' full play history. Which is implemented in step1.Compatibility
scoredatalog.dbdirectly. Because it would violate the primary key restriction.Known Issues
scoredatalogbut inscore. Personally speaking I don't think this is an issue and need to be fixed.TODOs:
The second goal, allow user viewing the lamp/scores based on the selected mod directly
Add sort & filter button for local history table
View course scores
Migrate old data fromDeleted because not very useful.scoredatalogtoeddatalogwhen it's emptyCurrently, the new added functions don't have the lineNot a thing now.song.hasUndefinedLongNote() ? lnmode : 3. I couldn't understand it rn.Other improvements